Method and system for validating data

ABSTRACT

A method and system for validating data. Warehouse data is generated by transforming source data via an ETL transformation model. A data cube is generated by transforming the warehouse data via an OLAP transformation model. A report dataset (MDS 1 ) is generated from the data cube. A reference dataset (S) is generated from the source data. Whether MDS 1  matches S is determined. If MDS 1  doesn&#39;t match S, then an OLAP inverse transformation is performed on MDS 1  to generate an OLAP dataset (MDS 2 ) and whether MDS 2  matches S is determined. If MDS 1  doesn&#39;t match S and MDS 2  does not match S, then an ETF inverse transformation is performed on MDS 2  to generate an ETL dataset (MDS 3 ) and whether MDS 2  matches MDS 1  and whether MDS 3  matches S is determined. If MDS 1  doesn&#39;t match S and MDS 2  does not match S and MDS 3  does not match S, then whether MDS 3  matches MDS 2  is determined.

FIELD OF THE INVENTION

The present invention relates to data processing technology, and inparticular, to a method and a system for validating data.

BACKGROUND OF THE INVENTION

With the development of information technology, more and more peoplebegin to use relevant technology on business intelligence to analyze andprocess business data to provide powerful support for decision-makers.Also, with the development and application of database technology, thedata amount stored in a database rocketed high from mega (M) bytes andgigabytes (G) in the 1980s to current trillion (T) bytes and peta (P)bytes. Meanwhile, query requirements from users also become increasinglycomplex, which involves not only querying or manipulating one or morepieces of records in a relational table but also performing dataanalysis and information syntheses on tens of millions of pieces ofrecorded data in a plurality of tables. However, a transactionprocessing type relational database system cannot meet all suchrequirements. For operation and analytical type applications, theycannot meet performance requirements; thus, people always release therestriction on redundancy in a relational database and introducesstatistical and integrated data. However, the application logics of suchstatistical and integrated data are dispersed, random, and unsystematic;thus, the analytical function is limited, inflexible, and difficult tomaintain. Many software manufacturers compensate insufficient supportfrom the relational database management system by developing its frontend products, attempting to unify dispersed public application logicsthrough a dedicated data integration engine, aided by a more intuitivedata access interface, so as to respond to a complex query requirementfrom a non-professional data processing person in short time.

Business Intelligence (BI) technology processes a great amount of dataand reflects information and knowledge in data. Business Intelligencerefers to relevant technology, application, etc., which extractsvaluable data from existing data of an enterprise so as to help theenterprise to make sensible business operation decisions. The datacomprises various kinds of data from the business system of theenterprise itself and other external environments where the enterpriseis located. In order to transform data into knowledge, data in a datasource is usually populated into a data warehouse through an ETL(Extract-Transform-Load, i.e., a process of data extraction,transformation and loading) model. Then, a data cube is created based onthe data in a data warehouse through an OLAP (On-Line AnalysisProcessing) model, for utilizing data mining to form a statement reportand data analysis report.

However, since there are varieties of data sources and processing of ETLmodel and OLAP model involves a great mount of data, error likely occursduring the BI data processing process. The prior art determines dataaccuracy by checking the data in the generated report and directlycomparing it with the original data in the application system. However,since the data amount in the report is too high, a comprehensiblecomparison is usually impossible. Besides, even if it is found that thedata in the report is inconsistent with the original data in theapplication system, it is impossible to determine the cause of theproblem. The workload for comprehensively checking data in the modelsand data warehouse is overwhelmingly large, which always needsconsiderable time to determine the cause of the problem.

SUMMARY OF THE INVENTION

The present invention provides a method (and associated system andcomputer program product) for validating data, said method comprising:

a processor of a data processing system generating warehouse data in adata warehouse by transforming source data in a data source into thewarehouse data via an Extract-Transform-Load (ETL) transformation model;

said processor generating a data cube by transforming the warehouse datain the data warehouse into the data cube via an On-Line AnalysisProcessing (OLAP) transformation model;

said processor generating a report multi-dimensional data set (MDS1)from the data cube via a data cube query of the data cube;

said processor generating a reference multi-dimensional data set (S)from the source data via a source data query of the source data, saidsource data query corresponding to the data cube query; and

said processor determining whether MDS1 matches S;

wherein if said determining whether MDS1 matches S comprises determiningthat MDS1 does not match S, then the method further comprises saidprocessor performing an OLAP inverse transformation on MDS1 to generatean OLAP multi-dimensional data set (MDS2) and said processor determiningwhether MDS2 matches S;

wherein if said determining whether MDS1 matches S comprises determiningthat MDS1 does not match S and said determining whether MDS2 matches Scomprises determining that MDS2 does not match S, then said processorperforming an ETF inverse transformation on MDS2 to generate an ETLmulti-dimensional data set (MDS3) and said processor determining whetherMDS2 matches MDS1 and said processor determining whether MDS3 matches S;wherein if said determining whether MDS1 matches S comprises determiningthat MDS1 does not match S and said determining whether MDS2 matches Scomprises determining that MDS2 does not match S and said determiningwhether MDS3 matches S comprises determining that MDS3 does not match S,then said processor determining whether MDS3 matches MDS2.

The present invention provide a method (and associated system andcomputer program product) for validating data, said method comprising:

a processor of a data processing system generating warehouse data in adata warehouse by transforming source data in a data source into thewarehouse data via an Extract-Transform-Load (ETL) transformation model;

said processor generating a report multi-dimensional data set (MDS1)from the data warehouse via a data warehouse query of the datawarehouse;

said processor generating a reference multi-dimensional data set (S)from the source data via a source data query of the source data, saidsource data query corresponding to the data cube query; and

said processor determining whether MDS1 matches S;

wherein if said determining whether MDS1 matches S comprises determiningthat MDS1 does not match S, then the method further comprises saidprocessor performing an ETF inverse transformation on MDS1 to generatean ETL multi-dimensional data set (MDS3) and said processor determiningwhether MDS3 matches S;

wherein if said determining whether MDS1 matches S comprises determiningthat MDS1 does not match S and said determining whether MDS3 matches Scomprises determining that MDS3 does not match S, then said processordetermining whether MDS3 matches MDS1.

By using the method and system according to the embodiments of thepresent invention, it is possible to validate easily whether datapresented to users is problematic, and further determine, if a problemexists in the data, where the problem exists in a Business Intelligence(BI) solution. Therefore, data accuracy is ensured on the one hand, buton the other hand the workload for checking data problems is greatlyreduced.

BRIEF DESCRIPTION OF THE DRAWINGS

The above and other objectives, features and advantages of the presentinvention will become more apparent through more detailed description ofembodiments of the present invention as illustrated in the drawings.

FIG. 1 illustrates a diagram of a typical Business Intelligence (BI)solution architecture;

FIG. 2 illustrates a flow chart of a data validation method 200according to an embodiment of the present invention.

FIG. 3 illustrates a flow chart of a data validation method 300according to an embodiment of the present invention.

FIG. 4 illustrates a diagram of a data validation method according to anembodiment of the present invention.

FIG. 5 illustrates a flow chart of pertaining to the data validationmethod of FIG. 3, according to an embodiment of the present invention.

FIG. 6A illustrates a flow chart of a data validation method accordingto an embodiment of the present invention.

FIG. 6B illustrates a flow chart pertaining to the data validationmethod of FIG. 6A according to an embodiment of the present invention.

FIG. 7 illustrates a systematic block diagram of a data validationsystem according to an embodiment of the present invention.

FIG. 8 illustrates a data processing system used for validating data, inaccordance with embodiments of the present invention.

DETAILED DESCRIPTION OF THE INVENTION

Hereinafter, the present invention will be described with reference tothe methods and system according to the embodiments of the presentinvention, wherein each block in the flow charts and/or block diagramsand combination of each block in the flow charts and/or block diagramsof the present invention may be implemented with computer programinstructions. These computer program instructions may be provided to aprocessor of a computer or other programmable data processing apparatussuch that these instructions executed through the computer or otherprogrammable data processing apparatus implement functions/operationsspecified in the blocks of the flow charts and/or block diagramspresented herein.

These computer program instructions may also be stored in acomputer-readable hardware storage medium capable of instructing thecomputer or other programmable data processing apparatus to work in aparticular manner, such that the instructions stored in thecomputer-readable hardware storage medium generate a product includinginstructions configured to be executed by a computer (via a processor ofthe computer) to implement the functions/operations specified in theflow charts and/or block diagrams.

The computer program instructions may also be loaded onto a computer orother programmable data processing apparatus, such that a series ofoperation steps is implemented on the computer or other programmabledata processing apparatus, to generate a computer-implemented process,such that execution of the instructions on the computer or otherprogrammable apparatus provides a process of implementing thefunctions/operations specified in the blocks of the flow charts and/orblock diagrams presented herein.

The present invention provides a method and system for validating data.The method and system generate a report multi-dimensional data set froma data cube based on a data cube query condition. A referencemulti-dimensional data set is generated from the source data based on asource data query condition corresponding to the data cube querycondition; meanwhile, an OLAP inverse transformation may be furtherperformed on the report multi-dimensional data set to generate an OLAPmulti-dimensional data set, and an ETL inverse transformation isperformed on the OLAP multi-dimensional data set to generate an ETLmulti-dimensional data set. Data validation is performed based on thematching relationship between the generated multi-dimensional data sets,so as to determine whether data inconsistency exists. By using themethod and system, it is possible to easily validate the existence of aproblem in data presented to users, and in case of a data problem, todetermine where the problem exists in a Business Intelligence (BI)solution.

FIG. 1 illustrates a diagram of a typical BI solution architecture,wherein data in data source A, data source B, and data source C areloaded into a data warehouse 120 through a process of data extraction,transformation and loading based on a predetermined ETL(Extract-Transform-Load) model, and then, a data cube is created basedon the data in the data warehouse through an OLAP (On-Line AnalysisProcessing) model, for utilizing data mining to form a data presentation140 (statement report and data analysis report, etc).

A data source provides original data or original materials internal orexternal to a company, and these materials will become a basis foranalyzing and extracting knowledge. Data in a data source is generallyutilized in an on-line transaction processing (OLTP) system, whose dataorganization form is generally a transaction-orientated type. That is,data generated for completing a transaction are stored in a centralizedmanner, and stored in the same table or stored in several closelyrelated tables through a primary—foreign key correlation.

For example, Enterprise Resource Planning (ERP) software is a typicalon-line transaction processing system, and the data generated therebymay be used as a data source by a BI solution. Basic information filledby an employee upon enrollment is an independent transaction, and thebasic information may be stored in the same table of the data source.The company paying the remuneration to the employee is a transaction,and the remuneration payment condition for each employee may be storedin the same table of the data source. Such a data organization form iscalled a transaction-oriented type data organization.

A main function of the data warehouse 120 is to organize a large amountof data. By virtue of a data storage architecture of a data warehouse,various kinds of analytical methods such as On-Line Analysis Processing(OLAP) and data mining may be conveniently performed to help a decisionmaker to figure out valuable information from a considerable amount ofdata quickly and efficiently. Therefore, it facilitates quick draftingof a decision and quick response to change of an external environment,so as to help construct a BI solution.

Generally, a data warehouse may be established from a relationaldatabase, wherein the data warehouse may comprise a plurality ofstar-shaped structure data organizations each comprising a plurality ofdimensional data tables and a fact data table.

A giant enterprise usually has many on-line transaction processingsystems (OLTP), i.e., many data resources, and a data warehouseintegrates the data from respective OLTP systems of the enterprise andperforms consistency processing. A consistency processing process may beincluded in a data Extract-Transform-Load (ETL) process.

The ETL model is a transformation model for transforming data in asource database into a data warehouse, which defines sources (e.g.,locations) of the source data in the data source (for example, atransaction processing-oriented database), a target data location in atarget warehouse, and a mapping relationship between the source data andtarget data. The data Extract-Transform-Load (ETL) process extracts datafrom the data source with the ETL model, transforms the extracted datainto target data, and stores the target data at a target data locationin the data warehouse (theme-oriented database).

The ETL model may be described with the following metadata. The datadescribing and defining the service data per se and its runningenvironment is called metadata. The service data is mainly forsupporting data on a service system application, and metadata is datafor describing the service data. A typical embodiment of metadata isdescription of an object, i.e., description of database, table, column,column attributes (type, format, restriction, etc.), primary key/foreignkey correlation, etc.

For the ETL processing, the metadata may be used for defining thelocation and attributes of a data source, the location and attributes oftarget data; and determining a correspondence rule from the source datato the target data, and other necessary preparatory work before actualloading of the data, etc. It is typically through the whole datawarehouse project, and all procedures of ETL processing must refer tothe metadata to the utmost, so as to quickly implement the ETLprocessing.

In the BI solution architecture of FIG. 1, a data cube 130 is furthercreated based on the data in the data warehouse 120 through the On-LineAnalysis Processing (OLAP) model.

The data cube is a basis for the On-Line Analysis Processing system inthe BI solution, which is generated by transforming the data in the datawarehouse through an OLAP model. The data cube may be described throughthe following definitions:

Dimensions: i.e., an attribute set forms each dimension (e.g., a timeattribute set forms a time dimension and a geographic attribute setforms a geographical dimension).

Level of dimension: i.e., a description of the level or unit in whichthe attribute associated with the dimension is expressed (e.g., levelsof the time attribute of a time dimension may be expressed as a date,month, quarter, or year).

Dimension member: i.e., a value of the dimension, which is a descriptionof a location of a data item within a certain dimension. For example, avalue of “year, month, day” is a description of a location of a dataitem within a time dimension.

Measure: i.e., a value at a cell or element of a multi-dimensional dataset. For example, the sales volume of laptops in Beijing in March 2008is 10 sets. Here, “10” sets is the measure or value at the cell orelement of the multi-dimensional data set at which March 2008, Beijing,and laptops are dimension members corresponding to the dimensions oftime, geographical location, and computer type, respectively.

The OLAP model defines sources (for example, locations) and attributesof source data in the data warehouse, locations of target data in thetarget data cube, and a mapping relationship between the source data andthe target data. With the OLAP model, an OLAP transformation may beperformed to the data in the data warehouse to form a data cubecomprising a plurality of dimensions and corresponding measures.Accordingly, an OLAP inverse transformation model defines locations andattributes of source data in a data cube, locations of target data inthe data warehouse, and a mapping relationship between the source dataand the target data.

The OLAP model may be described with metadata to define a location ofthe data warehouse and attributes of data in the data warehouse, todetermine a correspondence rule for storing data from the data warehouseto the data cube and other necessary preparatory work before actualloading of the data, etc.

For example, the metadata of the OLAP model may comprise: from whichcolumn in which fact table in the data warehouse the measure data in thedata cube comes or from which operation this column of data comes. Inthe OLAP inverse transformation model, it may correspondingly comprisewhich column in which fact table in the data warehouse described withmetadata coming from which measure data in the data cube, or throughinverse operation of which kind of operation this column data beingobtained.

Since the data has been integrated (ETL transformation) before the OLAPtransformation, information loss will not occur; thus, the OLAP modeusually does not comprise any irreversible transformation.

In the BI solution architecture as illustrated in FIG. 1, with the datain the data cube 130, data may be presented well to the user throughdata presentation 140, for example, a statement. The data in the cubemay be presented to the user through a diagram, for example, a graphsuch as a histogram, a line graph, or a pie chart, etc, or a column, oran intersection diagram.

The data presented by each statement is only a subset of a datahistogram, which is called a target data cube. Partial data in the datacube are extracted based on specific service demands. It is possible todetermine from which dimension in the data cube the dimensioninformation of different levels in the statement comes and from whichdimension member value of the corresponding dimension in the data cubethe dimension member data of different level in the statement come.

Based on a specific service demand and a data organization form of adata cube, a query on the data cube may be generated, which specificallycomprises the following items: 1) the data cube from which the datacomes, which is dependent on in which data cube the target data to belooked up is stored; 2) the member values for each dimension of the datacube, and the value which should be taken by a respective dimensionmember in the data cube is determined based on the classificationcriteria of the data, the filter type of the data, and the definition ofthe data cube; 3) an operation used to generate the measure presented tothe user (i.e., whether it is necessary to define a target data in thebusiness logic by performing a certain operation to the measure of thecube in the business logic, for example, multiplied by a coefficient ora transformation of a unit, etc). A statement generation tool may querydata from the data cube through these queries and present it to the userin a form of statement.

In the construction process of such a typical BI solution, frequentlyoccurring problems have the following types: ETL model error, OLAP modelerror, and dirty data error.

1) ETL Model Error:

The ETL model error mainly refers to logic error occurring in a mappingrelationship from a source data to a data warehouse, which causes erroroccurring to data in the data warehouse and is embodied on the data cubeand final statement presentation data. It is necessary to modify the ETLmodel to correct the error.

2) OLAP Model Error:

The OLAP model error mainly refers to logic error in the mappingrelationship from the data warehouse to the data cube, which causeserror occurring to data presented in the statement. It is necessary tomodify the OLAP model to correct the error.

3) Dirty Data Error:

Dirty data error may be embodied on some illogic data existing in thesource data or data warehouse. In a normal environment, these datashould not exist. For example, some erroneous or repetitive data aregenerated in the source data, or some useless data loaded previously arepresent in the data warehouse, and all of these data may be regarded asdirty data. The validation error caused by dirty data need not becorrected by modifying the solution, which is usually restored byremoving the data.

Thus, for a constructed BI solution, on one hand, it is necessary tovalidate whether the data finally presented to the user is consistentwith the original data of the application, and on the other hand, in thecase of data inconsistency, it is necessary to figure out the cause ofthe data consistency. Hereinafter, a data validation method and systemaccording to the embodiment of the present invention will be describedin detail.

FIG. 2 illustrates a flow chart of a data validation method 200according to an embodiment of the present invention.

At step S210, a Report Multi-Dimensional Data Set MDS1 is generated fromthe data cube, wherein the report multi-dimensional data set comprises ameasure corresponding to a combination of members of a particulardimension of the data cube. The structure of the multi-dimensional dataset may be described as: a dimension comprising the multi-dimensionaldata set, a type of measure, and a condition to satisfy for data in thedata set.

According to an embodiment of the present invention, a reportmulti-dimensional data set MDS1 is generated from the data cube based ona query of the data cube. Components of the report multi-dimensionaldata set MDS1 may include: a plurality of dimensions (a dimension of amulti-dimensional data set is determined based on a dimensionaldefinition of a target data cube in the query); each dimension comprisesa corresponding member set (the member set of each dimension isdetermined based on “the member value of a member of each dimension ofthe data cube” in the query); the measure value corresponding to themember combination of each dimension (based on the set of dimensionvalues, the data is extracted from the data cube for generating ameasure value corresponding to the member combination of eachdimension).

It should be noted here that for the sake of depiction, the structure ofthe multi-dimensional data set and the components of the reportmulti-dimensional data set are described in detail in the embodiments ofthe present invention. However, the skilled in the art should understandthat the structure of the multi-dimensional data set is not limited tothe dimension of the multi-dimensional data set, the type of themeasure, the condition to satisfy for the data in the data set, etc.,and the components of the report multi-dimensional data set is notlimited to the above depicted conditions.

At step S220, a reference multi-dimensional data set S is generated fromthe source data, wherein a source data query corresponding to the datacube query may be generated may be generated based on the specificservice requirements and data organization forms of source data; and thereference multi-dimensional data set S is generated from the source databased on the query of the source data.

Generation of the reference multi-dimensional data set S and the reportmulti-dimensional data set MDS1 comprises extracting data from differentdata sources based on same specific service demands (for example, whatdata to look up (e.g., the type of measure), the classification criteria(e.g., dimension), and type of data filter condition satisfied for thedata) according to the same specific service requirements; thus, thestructures of the reference multi-dimensional data set S and the reportmulti-dimensional data set MDS1 are identical.

At step S230, data validation is performed based on the matchingrelationship between the generated multi-dimensional data set and thereport multi-dimensional data set. Here, data consistency is determinedthrough matching the generated report multi-dimensional data set MDS1and reference multi-dimensional data set S.

As previously mentioned, the report multi-dimensional data set andreference multi-dimensional data set may comprise a plurality ofdimensions, a dimension member of each dimension, and measure value atthe cell or element of the multi-dimensional data set corresponding to adimension member of each dimension. In this case, the matchingrelationship between the reference multi-dimensional data set and thereport multi-dimensional data set is determined by comparing: aplurality of dimensions in the report multi-dimensional data set and thereference multi-dimensional data set, a dimension member of eachdimension in the report multi-dimensional data set and the referencemulti-dimensional data set, and the measure value corresponding to thedimension member of each dimension; and then data validation isperformed based on the preceding determined matching relationships.

When determining the matching relationship between differentmulti-dimensional data sets, firstly, the numbers of their dimensionsare compared for equality; if they are equal, then the types of theirdimension members are further compared for equality; and if they areequal, then the types of the measure values are compared for equality;and if they are equal, then the structures of the multi-dimensional datasets are identical. Otherwise, the structures of the multi-dimensionaldata sets are different, and it may be necessary to check whethergeneration of the multi-dimensional data sets is based on the sameservice requirements.

The reference multi-dimensional data set S is constructed by extractingdata from source data based on a query generated based on specificservice requirements, and the report multi-dimensional data set MDS1 isalso constructed by generating a query into the data cube based on thespecific service requirements to thereby extract data. Thus, thereference multi-dimensional data set S and the report multi-dimensionaldata set MDS1 have same dimensions and measure types, i.e., having asame structure. However, specific dimension member value and measurevalue come from a data source and a data cube, respectively.

If the reference multi-dimensional data set S matches the reportmulti-dimension data set MDS1, then it indicates that the data afterdata processing and the source data are consistent; therefore, there isno data processing problem; otherwise, data processing problem exists.

FIG. 3 illustrates a flow chart of a data validation method 300according to another embodiment of the present invention. The datavalidation method 300 in the embodiment as illustrated in FIG. 3 hassteps S310-330 identical to steps S210-330 in the data validation method200 in the embodiments as illustrated in FIG. 2. For the sake ofsimplicity, description will not be repeated.

At step S340, based on the inverse transformation model of the On-LineAnalysis Processing OLAP, an OLAP inverse transformation is performed tothe report multi-dimensional data set MDS1, so as to generate an OLAPmulti-dimensional data set MDS2, wherein an OLAP multi-dimensional dataset MDS2 employs a same structure as a report multi-dimensional data setMDS1.

The inverse operation of the model refers to an inverse operation onlogic relationship, for example, if a positive-going logic relationshipis that the values in column a in Table A of the source data arepopulated into the column c in the target data table B, then the inverseoperation of the logic relationship is that the column c in data Table Bis populated into column a in Table A. Since the target data cannotcreate data itself, there must be a fact in the source datacorresponding thereto; thus, there must exist a subset of the sourcedata which has one-to-one mapping relationship with the target data.Thus based on the definition on the OLAP model and the positive-goinglogic relationship therein, an inverse transformation model of the OLAPmodel may be obtained, and the inverse transformation model comprisesinverse operation of the corresponding positive-going logicrelationship.

The OLAP inverse transformation model defines locations and attributesof source data in a data cube, locations of target data in the datawarehouse, and a mapping relationship between the source data and thetarget data. In the OLAP inverse transformation model, it may comprisewhich column in which fact table in the data warehouse described withmetadata coming from which measure data in the data cube, or through theinverse operation of which kind of operation this column data beingobtained.

The report multi-dimensional data set MDS1 comprises data from the datacube, including a member set of dimensions and measure valuescorresponding to member sets of different dimensions. Meanwhile, theprocess of constructing a report multi-dimensional data set MDS1 mayfurther record the dimensions and measures of the data cube from whichthe respective data in the report multi-dimensional data set MDS1 comefrom.

The transformation defined by the OLAP model comprises transformationbetween dimensions and transformation between corresponding measures,namely, from which column in which fact table in the data warehouse themeasure data in the OLAP system come, or from which operation thiscolumn of data is obtained, from which dimension tables in the datawarehouse the dimensions of different levels in the statement come, andfrom which columns in which dimension tables in the data warehouse thedimension member data of different levels in the statement come.

The transformations comprised in the above defined OLAP model may be allreversible. Since the data in the target data cube, regardless ofdimension data or measure data, come from the fact table or dimensiontable in the data warehouse, such transformations are reversible. Inother words, after obtaining the OLAP model and the structure and dataof the data cube, any data in the data cube may be mapped back into thedata warehouse. This process is called the inverse transformationprocess of the OLAP model.

For example, the OLAP inverse transformation model comprises the mappingrelationship between the dimensions in the data cube and the dimensionaltable fields of the data warehouse, the mapping relationship between themeasures in the data cube and the fact table fields in the datawarehouse, and the mapping relationship of the relationship between thedimensions and measures in the data cube with the relationship betweenthe fact table and the dimension table in the data warehouse.

Based on the dimension member value in the report multi-dimensional dataset MDS1 and the mapping relationship between the dimensions of the datacube and the dimension table fields of the data warehouse in the inversetransformation rule of the OLAP model, a set of values of correspondingcolumns in the dimension table in the data warehouse is obtained, andthe set with the values of this column extracted constitutes the memberset of the corresponding dimension of the OLAP multi-dimensional dataset MDS2.

Next, based on the measure data in the report multi-dimensional data setMDS1 and the mapping relationship between the measures in the data cubeand the fact table fields in the data warehouse in the inversetransformation rule of the OLAP model, a set of values of correspondingcolumns in the fact table of the data warehouse is obtained, and the setwith the values of this column extracted constitutes measures of theOLAP multi-dimensional data set MDS2.

After constructing all dimension members and measures of the OLAPmulti-dimensional data set MDS2, a mapping relationship between thedimension table of the data warehouse and fact table is obtained, namelythe correspondence relationship between the dimension and the measure inthe OLAP multi-dimensional data set MDS2, based on the dimensionalmembers and measures in combination with the inversed transformationrule of the OLAP model,

In combination with the dimension information, measure information, andthe correspondence relationship between the dimension and the measure,the OLAP multi-dimensional data set MDS2 is thereby obtained.

The skilled in the art may understand that what is described above isonly an exemplary embodiment of generating the OLAP multi-dimensionaldata set MDS2, and that other manners may be used to generate an OLAPmulti-dimensional data set MDS2 based on the report multi-dimensionaldata set MDS1 and the inverse transformation model of the On-LineAnalysis Processing OLAP.

At step S350, data validation is performed based on the matchingrelationship between the generated multi-dimensional data sets.Specifically, data validation is performed based on the matchingrelationship among the reference multi-dimensional data set, the reportmulti-dimensional data set, and the OLAP multi-dimensional data set,wherein a matching relationship between the reference multi-dimensionaldata set and the OLAP multi-dimensional data set is determined, andfurther whether a data processing problem exists is determined based onthe matching relationship between the reference multi-dimensional dataset and the report multi-dimensional data set, and a matchingrelationship between the reference multi-dimensional data set and theOLAP multi-dimensional data set. If the reference multi-dimensional dataset does not match the report multi-dimensional data set and thereference multi-dimensional data set matches the OLAP multi-dimensionaldata set, then it is determined that the On-Line Analysis Processing(OLAP) model is problematic. If the reference multi-dimensional data setdoes not match the report multi-dimensional data set and the referencemulti-dimensional data set does not match the OLAP multi-dimensionaldata set either, then it is necessary to continuously perform thefollowing steps.

At step 360, based on the inverse transformation model of theExtract-Transform-Load ETL, the ETL inverse transformation is performedon the OLAP multi-dimensional data set MDS2, so as to generate an ETLmulti-dimensional data set MDS3.

The ETL model may comprise a format adjustment from the source table (inthe data source) to the target table (in the data warehouse), forexample, integrating a plurality of source database tables into a facttable of the data warehouse, or separating a table of source databasetable into a plurality of tables in the data warehouse. It is theforemost portion of the ETL model, and the transformation in most ETLmodels is this kind of transformation. The ETL inverse transformationmodel may correspondingly comprise a format adjustment described withmetadata from the target table (in the data warehouse) to the sourcetable (in the data source).

The ETL model may comprise a transformation of column values in thetable, for example, uniformly transforming different kinds of currenciesin the source table into dollar, and performing a percentagetransformation on the column values, etc. The ETL inverse transformationmodel may correspondingly comprise an inverse transformation in thecolumn values.

The ETL model may comprise integration of attributes of the columns inthe table, for example, combining the values of column A and the valuesof column B in the source table into a joint of A and B to be storedinto column C of the target table. The ETL inverse transformation modelmay correspondingly comprise splits in the column attributes in thetable, for example, splitting the values in column C in the target tableinto corresponding values of column A and values of column B based onthe inverse operation of the above joint.

Additionally, some ETL models may further comprise a consistencyprocessing, for example, unifying all decimal fractions in the datasource into 2 digits in the data warehouse. Those exceeding two digitsare truncated, and those below two digits are supplemented with 0. Thistransformation may be classified as an irreversible portion in themodel, i.e., a transformation with occurrence of information loss, forexample, truncation of decimal digits and truncation of character stringlength, etc. During generating an inverse transformation in the ETLinverse transformation model, these irreversible transformationoperations may be marked. During comparison of multi-dimensional datasets to be described hereinafter, the reference multi-dimensional dataset S is compared with other multi-dimensional data sets after the datatherein are subjected to an irreversible transformation in the ETLmodel.

For example, during the process of comparing whether twomulti-dimensional data sets (A, B) match, if the dimensional members inthe multi-dimensional data set are equal, and meanwhile the measurevalues corresponding to the dimensional members are also equivalent,then these two multi-dimensional data sets match. If they are not equal,then whether there is an irreversible portion in the reference model ischecked. If the multi-dimensional data set B is inversely generatedbased on the data in the multi-dimensional data set A and the model X,then the corresponding data in A are subjected to the irreversibletransformation operation in model X. Afterwards, the processed A iscompared with B. If the dimensional members in the multi-dimensionaldata set are equal and meanwhile the measure values corresponding to thedimension members are also equal, then the two multi-dimensional datasets match. After generation of the reference multi-dimensional data setS, the data therein are firstly subjected to an irreversibletransformation in the ETL model and/or OLAP model, and then thereference multi-dimensional data set S is compared with othermulti-dimensional data sets. In most cases, the OLAP model does notinclude the irreversible portion.

The OLAP multi-dimensional data set MDS2 comprises data from the datawarehouse, comprising the set of the column values of the fact table andthe set of column values of the corresponding dimension tables presentedby the measure values corresponding to the member set of dimensions andthe member set of different dimensions. Meanwhile, during the process ofconstructing an OLAP multi-dimensional data set MDS2, it is furtherpossible to record from which column in which fact table and from whichcolumn in which dimension table in the data warehouse various data inthe MDS2 come.

The inverse transformation of the ETL model comprises a mappingrelationship between the fact data in the fact table in the datawarehouse and some fields in the source table, and a mappingrelationship between the fields in the dimensional table and the fieldsin the source table in the data warehouse, and the mapping relationshipof the correspondence between the fact data and the dimension data ofthe fact table in the data warehouse with the correspondence between thefields in the source table.

Based on the dimension member value (in fact, the set of column valuesof the dimension table) and the inverse transformation rule of the ETLmodel in the OLAP multi-dimensional data set MDS2, processing isperformed on the OLAP multi-dimensional data set MDS2 to obtain a set ofvalues of the corresponding column stored in the source data derivedfrom the OLAP multi-dimensional data set. The set of values of thiscolumn is extracted to constitute a member set of the correspondingdimension of the ETL multi-dimensional data set MDS3.

After constructing all dimension members of the ETL multi-dimensionaldata set MDS3, a set of values of corresponding columns of fact tabledata stored in the source data derived from the OLAP multi-dimensionaldata set MDS2 is obtained based on the inverse transformation rule ofthe ETL model. Based on each dimension member constructed in the ETLmulti-dimensional data set MDS3, respective dimension members are given(storing values of corresponding columns in the data source of values ofrelated columns in the dimensional table), and based on the mappingrelationship of the correspondence between the dimensional data and factdata in the fact table in the data warehouse with the correspondencebetween the fields in the source table, the values of the correspondingcolumns storing fact table data in the data source are obtained, i.e.,values of the measures in the ETL multi-dimensional data set MDS3.

Based on the dimensional member value (in fact, the set of column valuesof the corresponding dimension table in the data warehouse) and theinverse transformation rule of the ETL model in the OLAPmulti-dimensional data set MDS2, a set of values of the correspondingcolumn stored in the source data corresponding to the correspondingdimensional member values of the OLAP multi-dimensional data set MDS2 isobtained. The set of values of this column is extracted to constitute amember set of the corresponding dimension of the ETL multi-dimensionaldata set MDS3.

The measure values in the OLAP multi-dimensional data set MDS2 are infact generated by the set of column values or the column value in thecorresponding fact table in the data warehouse through a predeterminedoperation. After constructing a set of all dimension members of the ETLmulti-dimensional data set MDS3, based on the inverse transformationrule of the ETL model, a set of values of corresponding columns of facttable data stored in the source data is obtained (measure values in theOLAP multi-dimensional data set MDS2 corresponding to the correspondingcolumn in the fact table). Based on each dimension member constructed inthe ETL multi-dimensional data set MDS3, respective dimension membersare given (namely, column values of the table representing thisdimension in the source data), and based on the mapping relationship ofthe correspondence between the fact data and dimensional data in thefact table in the data warehouse with the correspondence between thefields in the source table, the values of the corresponding columnsstoring data representing measures in the data source are obtained,i.e., values of the measures in the ETL multi-dimensional data set MDS3.

Those skilled in the art may understand, what is described above is onlyan exemplary embodiment of generating an ETL multi-dimensional data setMDS3, and that other manners may be used to generate an ETLmulti-dimensional data set MDS3 based on the ETL inverse transformationmodel and the OLAP multi-dimensional data set MDS2.

At step S370, data validation is performed based on the matchingrelationship between the generated multi-dimensional data sets.Specifically, data validation is performed based on the matchingrelationship among the reference multi-dimensional data set, the reportmulti-dimensional data set, the OLAP multi-dimensional data set, and theETL multi-dimensional data set.

For example, the matching relationship between the referencemulti-dimensional data set and the ETL multi-dimensional data set andthe matching relationship between the report multi-dimensional data setand the OLAP multi-dimensional data set may be determined. Further,where a data processing problem exists is determined based on thematching relationship between the reference multi-dimensional data setand the report multi-dimensional data set, the matching relationshipbetween the reference multi-dimensional data set and the OLAPmulti-dimensional data set, the matching relationship between thereference multi-dimensional data set and the ETL multi-dimensional dataset, and the matching relationship between the report multi-dimensionaldata set and the OLAP multi-dimensional data set.

The matching relationship between the OLAP multi-dimensional data setand the ETL multi-dimensional data set may be further determined. In themeanwhile, where a data processing problem exists is determined based onthe matching relationship between the reference multi-dimensional dataset and report multi-dimensional data set, the matching relationshipbetween the reference multi-dimensional data set and the OLAPmulti-dimensional data set, the matching relationship between thereference multi-dimensional data set and the ETL multi-dimensional dataset, the matching relationship between the report multi-dimensional dataset and the OLAP multi-dimensional data set, and the matchingrelationship between the OLAP multi-dimensional data set and the ETLmulti-dimensional data set.

Hereinafter in FIG. 5, how to validate data based on the matchingrelationship between a plurality of multi-dimensional data set mentionedabove will be depicted in detail to determine whether a data processingproblem exists and where it exists.

Here, it should be noted that though in FIG. 3, step S340 is depictedafter step S330 and step S360 is depicted after step S350, the skilledin the art may know that in fact, steps S340 and S360 are notnecessarily implemented after completion of steps S330 and S350. Infact, according to another embodiment of the present invention, aftergenerating the OLAP multi-dimensional data set and the ETLmulti-dimensional data set, data validation is performed further basedon the matching relationship between respective multi-dimensional datasets. For example, step S340 and step S360 may be implemented betweenrespective steps as illustrated in FIG. 5, or before respective steps inFIG. 5.

FIG. 4 illustrates a plurality of multi-dimensional data sets asgenerated: reference multi-dimensional data set S, the reportmulti-dimensional data set MDS1, OLAP multi-dimensional data set MDS2,and ETL multi-dimensional data set MDS3. From FIG. 4, it may be seenthat by virtue of the above method, the reference multi-dimensional dataset S, the report multi-dimensional data set MDS1, OLAPmulti-dimensional data set MDS2, and ETL multi-dimensional data set MDS3are generated, and through the matching relationships among thesemulti-dimensional data sets, whether the data processing from the datasource 410 to the data warehouse 420 and to the data cube 430 isproblematic and where the data processing problem exists in the BIsolution are determined.

Hereinafter, comparison between respective multi-dimensional data setsand tracking and positioning a BI solution problem will be depicted indetail with reference to FIG. 5.

As previously mentioned, in the construction process of a BI solution,frequently occurring problems have the following types: ETL model error,OLAP model error, and dirty data error.

Through the comparison results on the report multi-dimensional data set,OLAP multi-dimensional data set, the ETL multi-dimensional data set andthe reference multi-dimensional data set, we may determine whether amodel design of a BI solution is problematic and where the problem islocated.

In FIG. 5, S represents the reference multi-dimensional data set, MDS1represents the report multi-dimensional data set, MDS2 represents theOLAP multi-dimensional data set, and MDS3 represents the ETLmulti-dimensional data set.

At step S510, comparison is performed between the referencemulti-dimensional data set and the report multi-dimensional data set; ifthey match, it is deemed that the presented data has no problem, and nomodel error and dirty data error are found.

If they do not match, it means a data processing problem exists, thenthe method proceeds to step S520 to compare the referencemulti-dimensional data set and the OLAP multi-dimensional data set; ifthey match, then it indicates that the OLAP model is problematic.

If they are not equal, then the method proceeds to step S530 to comparethe report multi-dimensional data set and the OLAP multi-dimensionaldata set; if they do not match, then the method proceeds to step S540 tocompare the reference multi-dimensional data set with the ETLmulti-dimensional data set; and if they match, it indicates that the ETLmodel is problematic.

At step S540, if the reference multi-dimensional data set and the ETLmulti-dimensional data set do not match, then the method proceeds tostep S550 to compare the OLAP multi-dimensional data set with the ETLmulti-dimensional data set; and if they match, it indicates a dirty dataerror.

If the OLAP multi-dimensional data set and the ETL multi-dimensionaldata set do not match at step S550, it indicates that the ETL model isproblematic, and meanwhile it is also likely that a dirty data problemexists.

If at step S530, the report multi-dimensional data set and the OLAPmulti-dimensional data set do not match, the method proceeds to stepS560 to compare the ETL multi-dimensional data set and the referencemulti-dimensional data set. If they match, it indicates that both theOLAP model and the ETL model are problematic.

If at step S560, the reference multi-dimensional data set and thereference multi-dimensional data set do not match, then the methodproceeds to step S570 to compare the OLAP multi-dimensional data setwith the ETL multi-dimensional data set; and if they match, it indicatesthat the OLAP model and the ETL model are both problematic.

If at step S570, the OLAP multi-dimensional data set and the ETLmulti-dimensional data set do not match, it indicates that both the OLAPmodel and the ETL model are problematic, and meanwhile a dirty dataproblem likely exists.

Hereinafter, comparison between respective multi-dimensional data setsand tracking and positioning a BI solution problem has been depicted indetail with reference to FIG. 5. Obviously, respective determining stepshave been depicted in FIG. 5. The skilled in the art may know that thepresent invention does not necessarily perform determining according tothe flow as illustrated in FIG. 5; the matching relationship betweenrespective multi-dimensional data sets may be determined in an orderdiffering from the order as illustrated in the flow chart of FIG. 5, ortracking and positioning a data processing problem may also be obtained.Moreover, according to another embodiment, tracking and positioning onthe data processing problem may also be obtained in a lookup tablemanner. Table 1 infra clearly introduces solutions to problemsconfronted in models by BI solutions obtained based on differentcomparison results. In Table 1, “!=” indicates not equal to.

TABLE 1 Results of comparing multi- dimensional data sets Inference ofrelevant problems S = MDS1 No data problem S != MDS1 S = MDS2 OLAP modelproblem S != MDS1 S != MDS2 S = MDS3 ETL model problem MDS1 = MDS2 S !=MDS1 S != MDS2 S != MDS3 Dirty data problem MDS1 = MDS2 MDS2 = MDS3 S !=MDS1 S != MDS2 S != MDS3 ETL model problem MDS1 = MDS2 MDS2 != MDS3(likely having a dirty data problem) S != MDS1 S != MDS2 S = MDS3 ETLmodel and OLAP model MDS1 != MDS2 problem S != MDS1 S != MDS2 S != MDS3ETL model and OLAP model MDS1 != MDS2 MDS2 = MDS3 problem S != MDS1 S !=MDS2 S != MDS3 ETL model and OLAP model MDS1 != MDS2 MDS2 != MDS3problem (likely having a dirty data problem)

In previous embodiments, the report multi-dimensional data set isgenerated from the data cube. FIG. 6A illustrates a flow chart of a dataprocessing method according to another embodiment of the presentinvention. In the method 600 as illustrated, the reportmulti-dimensional data set is directly generated from the datawarehouse. In this case, since the data in the data warehouse aregenerated from the ETL transformation model but are not subjected to thetransformation of the OLAP model; thus, during the process of generatingan ETL multi-dimensional data set, it would be unnecessary to furtherperform an inverse transformation on the OLAP model.

At S610, based on a predetermined data warehouse query, a reportmulti-dimensional data set (MDS1) is generated from the data warehouse.

At step S620, a reference multi-dimensional data set (S) is generatedfrom the source data based on a source data query conditioncorresponding to the data warehouse query n.

At step S630, data validation is performed based on the matchingrelationship between the generated multi-dimensional data sets.Specifically, whether the data are consistent is determined based on thematching relationship between the reference multi-dimensional data (S)set and the report multi-dimensional data set (MDS1), wherein ifpredetermined items between the reference multi-dimensional data set (S)and the report multi-dimensional data (MDS1) set do not match, thenexistence of the data processing problem is determined.

As previously mentioned, the report multi-dimensional data set andreference multi-dimensional data set may comprise a plurality ofdimensions, a member set of each dimension, and measure valuecorresponding to a member set of each dimension. In this case, thematching relationship between the reference multi-dimensional data set(s) and the report multi-dimensional data set (MDS1) is determined bycomparing a plurality of dimensions in the report multi-dimensional dataset (MDS1) and the reference multi-dimensional data set (S), a memberset of each dimension, and the measure value corresponding to the memberset of each dimension, and then data validation is performed based onthe determined matching relationship, respectively.

Likewise, in order to further determine where a data processing problemexists, the method as illustrated in FIG. 6A may further comprise stepS640 of performing the ETL inverse transformation on the reportmulti-dimensional data set (MDS1) based on the inverse transformationmodel of the ETL model so as to generate an ETL multi-dimensional dataset (MDS3).

At step S650, data validation is performed based on the matchingrelationship between the generated multi-dimensional data sets.Specifically, where a data processing problem exists is determined basedon the matching relationship between the reference multi-dimensionaldata set (S) and the report multi-dimensional data set (MDS1) and thematching relationship between the reference multi-dimensional data set(S) and the ETL multi-dimensional data set (MDS3). If the predetermineditems between the reference multi-dimensional data set (S) and thereport multi-dimensional data set (MDS1) do not match and thepredetermined items between the reference multi-dimensional data set (S)and the ETL multi-dimensional data set (MDS3) match, then it isdetermined that the ETL model is problematic.

Further, if the predetermined items between the referencemulti-dimensional data set (S) and the report multi-dimensional data(MDS1) set do not match and the predetermined items between thereference multi-dimensional data set (S) and the ETL multi-dimensionaldata set (MDS3) do not match and the predetermined items between thereport multi-dimensional data set (MDS1) and the ETL multi-dimensionaldata set (MDS3) match, then it is determined that the source data isproblematic.

In addition, if the predetermined items between the referencemulti-dimensional data set (S) and the report multi-dimensional data(MDS1) set do not match and the predetermined items between thereference multi-dimensional data set (S) and the ETL multi-dimensionaldata set (MDS3) do not match and the predetermined items between thereport multi-dimensional data set (MDS1) and the ETL multi-dimensionaldata set (MDS3) do not match, then it is determined that the ETL modelis problematic and/or the source data is problematic.

Likewise, step S630 here is not necessary, which may, after generatingthe report multi-dimensional data set (MDS1), referencemulti-dimensional data set (S), and the ETL multi-dimensional data set(MDS3), perform data validation based on the matching relationshipbetween respective multi-dimensional data sets to determine whether adata processing problem exists and where it exists.

FIG. 6B illustrates a flow chart pertaining to the data validationmethod of FIG. 6A, according to an embodiment of the present invention.In FIG. 6B, S represents the reference multi-dimensional data set, MDS1represents the report multi-dimensional data set, and MDS3 representsthe ETL multi-dimensional data set.

At step S670, a comparison is performed between the referencemulti-dimensional data set (S) and the report multi-dimensional data set(MDS1). If MDS1 and S match in step S670, it is deemed that thepresented data has no problem, and no ETL model error and/or source dataerror are found. If MDS1 and S do not match in step S670, it means adata processing problem exists, and then the method proceeds to stepS680 to compare the reference multi-dimensional data set (S) with theETL multi-dimensional data set (MDS3).

If MDS3 matches S in step S680, it indicates that the ETL model isproblematic. If MDS3 does not match S in step S680, then the methodproceeds to step S690 to compare the report multi-dimensional data set(MDS1) with the ETL multi-dimensional data set (MDS3).

If MDS3 matches MDS1 in step S690, it indicates that the source data isproblematic. If MDS3 does not match MDS1 in step S690, it indicates thatthe ETL model is problematic and/or the source data is problematic.

FIG. 7 illustrates a systematic block diagram of a data validationsystem 700 according to an embodiment of the present invention, whereinthe data processing system 700 according to an embodiment of the presentinvention comprises: report multi-dimensional data set generating means710 for generating a report multi-dimensional data set from the datacube; reference multi-dimensional data set generating means 720 forgenerating a reference multi-dimensional data set from the source datacorresponding to the data cube; and validating means 750 for performingdata validation based on the matching relationship between respectivemulti-dimensional data sets as generated. The validating means 750 mayperform data validation based on the matching relationship between thereference multi-dimensional data set and report multi-dimensional dataset, so as to determine whether the data of the data cube is consistentwith the source data.

According to an embodiment of the present invention, the reportmulti-dimensional data set means generates the report multi-dimensionaldata set from the data cube based on the data cube query, and thereference multi-dimensional data set means, based on the source dataquery corresponding to the data cube query generates the referencemulti-dimensional data set from the source data.

As previously mentioned, the report multi-dimensional data set andreference multi-dimensional data set may comprise a plurality ofdimensions, a member set of each dimension, and measure valuecorresponding to a member set of each dimension. In this case, thevalidating means may further comprise a comparing means (notillustrated) for determining the matching relationship between thereference multi-dimensional data set and the report multi-dimensionaldata set by comparing a plurality of dimensions in the reportmulti-dimensional data set and the reference multi-dimensional data set,a member set of each dimension, and the measure value corresponding tothe member set of each dimension, respectively.

According to another embodiment of the present invention, the referencemulti-dimensional data set generating means may be further forperforming a transformation on the irreversible portion in the ETL modelto the data in the reference multi-dimensional data set and taking thetransformed reference multi-dimensional data set as the referencemulti-dimensional data set as generated.

According to a still further embodiment of the present invention, asillustrated in the dash line portion in FIG. 7, the data processingsystem 700 may further comprise an OLAP multi-dimensional data setgenerating means 730, for performing the OLAP inverse transformation onthe report multi-dimensional data set based on the inversetransformation model of the OLAP model, so as to generate an OLAPmulti-dimensional data set, wherein the validating means performs datavalidation based on the matching relationship among the referencemulti-dimensional data set, report multi-dimensional data set, and anOLAP multi-dimensional data set. For example, the validating means maydetermine the matching relationship between the referencemulti-dimensional data set and the OLAP multi-dimensional data set, andperform data validation based on the matching relationship between thereference multi-dimensional data set and the report multi-dimensionaldata set and the matching relationship between the referencemulti-dimensional data set and the OLAP multi-dimensional data set. Ifthe reference multi-dimensional data set does not match the reportmulti-dimensional data set and the reference multi-dimensional data setmatches the OLAP multi-dimensional data set, then the validating meansdetermines that the OLAP model is problematic.

According to a yet further embodiment of the present invention, asillustrated in the dash line portion in FIG. 7, the data processingsystem 700 may further comprise an ETL multi-dimensional data setgenerating means 740, for performing the ETL inverse transformation onthe OLAP multi-dimensional data set based on the inverse transformationmodel of the ETL model, so as to generate an ETL multi-dimensional dataset, wherein the validating means performs data validation based on thematching relationship among the reference multi-dimensional data set,report multi-dimensional data set, the OLAP multi-dimensional data set,and the ETL multi-dimensional data set. For example, the validatingmeans may determine the matching relationship between the referencemulti-dimensional data set and the ETL multi-dimensional data set andthe matching relationship between the report multi-dimensional data setand the OLAP multi-dimensional data set, and based on the matchingrelationship between the reference multi-dimensional data set and thereport multi-dimensional data set, the matching relationship between thereference multi-dimensional data set and the OLAP multi-dimensional dataset, the matching relationship between the reference multi-dimensionaldata set and the ETL multi-dimensional data set, and the matchingrelationship between the report multi-dimensional data set and the OLAPmulti-dimensional data set, so as to determine a data processingproblem.

According to another embodiment of the present invention, the validatingmeans determines the matching relationship between the OLAPmulti-dimensional data set and the ETL multi-dimensional data set andperforms data validation to determine a data processing problem, basedon the matching relationship between the reference multi-dimensionaldata set and the report multi-dimensional data set, the matchingrelationship between the reference multi-dimensional data set and theOLAP multi-dimensional data set, the matching relationship between thereference multi-dimensional data set and the ETL multi-dimensional dataset, the matching relationship between the report multi-dimensional dataset and the OLAP multi-dimensional data set, and the matchingrelationship between the OLAP multi-dimensional data set and the ETLmulti-dimensional data set.

According to a yet further embodiment of the present invention, thereport multi-dimensional data set generating means 710, based on apredetermined data warehouse query, generates a report multi-dimensionaldata set from the data warehouse. In this case, it is unnecessary forthe data processing system 700 to include an OLAP multi-dimensional dataset generating means 730; the ETL multi-dimensional data set generatingmeans 740, based on the inverse transformation model of the ETL model,processes the report multi-dimensional data set so as to generate an ETLmulti-dimensional data set, wherein the validating means performs datavalidation based on the matching relationship among the referencemulti-dimensional data set, report multi-dimensional data set, and anETL multi-dimensional data set. For example, the validating means maydetermine the matching relationship between the referencemulti-dimensional data set and the ETL multi-dimensional data set, andperform data validation based on the matching relationship between thereference multi-dimensional data set and the report multi-dimensionaldata set and the matching relationship between the referencemulti-dimensional data set and the ETL multi-dimensional data set, so asto determine whether a data processing problem exists.

According to a further embodiment of the resent invention, thevalidating means determines the matching relationship between the reportmulti-dimensional data set and the ETL multi-dimensional data set andperforms data validation to determine a data processing problem, basedon the matching relationship between the reference multi-dimensionaldata set and the report multi-dimensional data set, the matchingrelationship between the reference multi-dimensional data set and theETL multi-dimensional data set, and the matching relationship betweenthe report multi-dimensional data set and the ETL multi-dimensional dataset.

The present invention further provides a hardware storage medium ordevice (i.e., hardware storage medium or hardware storage device) inwhich instructions for executing the methods according to the presentinvention are stored.

The flow charts and block diagrams in the drawings illustrate anarchitecture, function and operation likely implemented by the system,methods and a computer program product according to the embodiments ofthe present invention. In this regard, each block in the flowcharts orblock may represent a module, a program segment, or a part of code,which contains one or more executable instructions for performingspecified logic functions. It should be noted that in some alternativeimplementations, functions indicated in blocks may occur in an orderdiffering from the order as illustrated in the figures. For example, twoblocks illustrated consecutively may be performed in parallelsubstantially or in an inverse order. This depends on relevantfunctions. It should also be noted that each block in the block diagramsand/or flowcharts and a combination of blocks in the block diagramsand/or flowcharts may be implemented by a dedicated hardware-basedsystem for performing specified functions or operations or by acombination of dedicated hardware and computer instructions.

The skilled in the art would appreciate that the present invention maybe embodied as an apparatus, a method, or a computer program product.Thus, the present invention may be specifically implemented in thefollowing manners, namely, complete hardware, complete software(including firmware, resident software, microcode, etc), or acombination of software part and hardware part as generally called“circuit,” “module,” or “system” in this text. Further, the presentinvention may adopt a form of computer program product as embodied inany tangible hardware medium or device of expression, the medium ordevice comprising computer-available program code.

Any combination of one or more computer-readable hardware media ordevice(s) may be used. The computer-readable hardware medium or devicemay be for example, but not limited to, electrical, magnetic, optical,electromagnetic, infrared, or semiconductor system, means, or device.More specific examples (non-exhaustive list) of the computer-readablehardware medium or device may comprise the following: an electricconnection having one or more leads, a portable computer magnetic disk,hard disk, random access memory (RAM), read-only memory (ROM), erasableprogrammable read-only memory (EPROM or flash disk), optical fiber,portable compact disk read-only memory (CD-ROM), optical storage device,or a magnetic storage device. It should be noted that the computerreadable hardware medium may even be a paper or other suitable mediumprinted with a program thereon, because the program may be obtainedelectronically by electrically scanning such paper or other medium, andthen compiled, interpreted or processed in a suitable manner, and ifnecessary, stored in a computer memory. In the context of the presentdocument, a computer-readable hardware medium or device may be anyhardware medium or device containing, storing a program available for aninstruction execution system, apparatus or device, or associated withthe instruction execution system, apparatus, or device. Acomputer-readableavailable program code may be transmitted by anysuitable medium, including, but not limited to, radio, wire, cable, orRF, etc.

A computer program code for executing operation of the present inventionmay be complied by any combination of one or more program designlanguages, the program design languages including object-orientedprogram design languages, such as Java, Smalltalk, C++, etc, as well asconventional procedural program design languages, such as “C” programdesign language or similar program design language. A program code maybe completely or partly executed on a user computer, or executed as anindependent software package, partly executed on the user computer andpartly executed on a remote computer, or completely executed on a remotecomputer or server. In the latter circumstance, the remote computer maybe connected to the user computer through various kinds of networks,including local area network (LAN) or wide area network (WAN), orconnected to external computer (for example, using an internet serviceprovider via Internet).

FIG. 8 illustrates a data processing system 90 used for validating data,in accordance with embodiments of the present invention. The dataprocessing system 90 comprises a processor 91, an input device 92coupled to the processor 91, an output device 93 coupled to theprocessor 91, and memory devices 94 and 95 each coupled to the processor91. The input device 92 may be, inter alia, a keyboard, a mouse, etc.The output device 93 may be, inter alia, a printer, a plotter, acomputer screen, a magnetic tape, a removable hard disk, a floppy disk,etc. The memory devices 94 and 95 may be, inter alia, a hard disk, afloppy disk, a magnetic tape, an optical storage such as a compact disc(CD) or a digital video disc (DVD), a dynamic random access memory(DRAM), a read-only memory (ROM), etc. The memory device 95 includes acomputer code 97 which is program code that comprisescomputer-executable instructions. The computer code 97 includes softwareor program instructions that may implement an algorithm for validatingdata. The processor 91 executes the computer code 97. The memory device94 includes input data 96. The input data 96 includes input required bythe computer code 97. The output device 93 displays output from thecomputer code 97. Either or both memory devices 94 and 95 (or one ormore additional memory devices not shown in FIG. 8) may be used as acomputer readable hardware storage medium (or program storage device)having computer readable program code stored therein and/or having otherdata stored therein, wherein the computer readable program codecomprises the computer code 97. Generally, a computer program product(or, alternatively, an article of manufacture) of the data processingsystem 90 may comprise said computer readable hardware storage medium orhardware storage device.

While FIG. 8 shows the data processing system 90 as a particularconfiguration of hardware and software, any configuration of hardwareand software, as would be known to a person of ordinary skill in theart, may be utilized for the purposes stated supra in conjunction withthe particular data processing system 90 of FIG. 8. For example, thememory devices 94 and 95 may be portions of a single memory devicerather than separate memory devices.

The present invention has been described in detail with reference to thepreferred solutions, but it would be appreciated that the aboveembodiments are only for illustrating, not for limiting the presentinvention. The skilled in the art may modify the solutions asillustrated for the present invention without departing from the scopeand spirit of the present invention.

1. A method for validating data, said method comprising: a processor ofa data processing system generating warehouse data in a data warehouseby transforming source data in a data source into the warehouse data viaan Extract-Transform-Load (ETL) transformation model; said processorgenerating a data cube by transforming the warehouse data in the datawarehouse into the data cube via an On-Line Analysis Processing (OLAP)transformation model; said processor generating a reportmulti-dimensional data set (MDS1) from the data cube via a data cubequery of the data cube; said processor generating a referencemulti-dimensional data set (S) from the source data via a source dataquery of the source data, said source data query corresponding to thedata cube query; and said processor determining whether MDS1 matches S;wherein if said determining whether MDS1 matches S comprises determiningthat MDS1 does not match S, then the method further comprises saidprocessor performing an OLAP inverse transformation on MDS1 to generatean OLAP multi-dimensional data set (MDS2) and said processor determiningwhether MDS2 matches S; wherein if said determining whether MDS1 matchesS comprises determining that MDS1 does not match S and said determiningwhether MDS2 matches S comprises determining that MDS2 does not match S,then said processor performing an ETF inverse transformation on MDS2 togenerate an ETL multi-dimensional data set (MDS3) and said processordetermining whether MDS2 matches MDS1 and said processor determiningwhether MDS3 matches S; wherein if said determining whether MDS1 matchesS comprises determining that MDS1 does not match S and said determiningwhether MDS2 matches S comprises determining that MDS2 does not match Sand said determining whether MDS3 matches S comprises determining thatMDS3 does not match S, then said processor determining whether MDS3matches MDS2.
 2. The method of claim 1, wherein if said determiningwhether MDS1 matches S comprises determining that MDS1 does not match S,then the method further comprises ascertaining that a data error existssuch that said ascertaining ascertains that the data error is an OLAPmodel error in the OLAP transformation model, an ETL model error in theETL transformation model, a dirty data error comprising an error in thesource data and/or erroneous data in the data warehouse, the ETL modelerror and/or the dirty data error, the OLAP model error and the ETLmodel error, or the OLAP model error and the ETL model error and thedirty data error; wherein if said determining whether MDS1 matches Scomprises determining that MDS1 matches S, then the method furthercomprises determining that a normal data condition exists such that theOLAP model error does not exist, the ETL model error does not exist, andthe dirty data error does not exist.
 3. The method of claim 2, whereinsaid determining whether MDS1 matches S comprises determining that MDS1does not match S; wherein if said determining whether MDS2 matches Scomprises determining that MDS2 matches S, then said ascertainingascertains that the data error is the OLAP model error; wherein if saiddetermining whether MDS2 matches S comprises determining that MDS2 doesnot match S and said determining whether MDS2 matches MDS1 comprisesdetermining that MDS2 matches MDS1 and said determining whether MDS3matches S comprises determining that MDS3 matches S, then saidascertaining ascertains that the data error is the ETL model error;wherein if said determining whether MDS2 matches S comprises determiningthat MDS2 does not match S and said determining whether MDS2 matchesMDS1 comprises determining that MDS2 matches MDS1 and said determiningwhether MDS3 matches S comprises determining that MDS3 does not match Sand said determining whether MDS3 matches MDS2 comprises determiningthat MDS3 matches MDS2, then said ascertaining ascertains that the dataerror is the dirty data error; wherein if said determining whether MDS2matches S comprises determining that MDS2 does not match S and saiddetermining whether MDS2 matches MDS1 comprises determining that MDS2matches MDS1 and said determining whether MDS3 matches S comprisesdetermining that MDS3 does not match S and said determining whether MDS3matches MDS2 comprises determining that MDS3 does not match MDS2, thensaid ascertaining ascertains that the data error is the ETL model errorand/or the dirty data error; wherein if said determining whether MDS2matches S comprises determining that MDS2 does not match S and saiddetermining whether MDS2 matches MDS1 comprises determining that MDS2does not match MDS1 and said determining whether MDS3 matches Scomprises determining that MDS3 matches S, then said ascertainingascertains that the data error is the OLAP model error and the ETL modelerror; wherein if said determining whether MDS2 matches S comprisesdetermining that MDS2 does not match S and said determining whether MDS2matches MDS1 comprises determining that MDS2 does not match MDS1 andsaid determining whether MDS3 matches S comprises determining that MDS3does not match S and said determining whether MDS3 matches MDS2comprises determining that MDS3 matches MDS2, then said ascertainingascertains that the data error is the OLAP model error and the ETL modelerror; wherein if said determining whether MDS2 matches S comprisesdetermining that MDS2 does not match S and said determining whether MDS2matches MDS1 comprises determining that MDS2 does not match MDS1 andsaid determining whether MDS3 matches S comprises determining that MDS3does not match S and said determining whether MDS3 matches MDS2comprises determining that MDS3 does not match MDS2, then saidascertaining ascertains that the data error is the OLAP model error andthe ETL model error and the dirty data error.
 4. The method of claim 1,wherein said determining whether MDS2 matches S comprises determiningthat MDS2 matches S.
 5. The method of claim 1, wherein said determiningwhether MDS2 matches S comprises determining that MDS2 does not match Sand said determining whether MDS2 matches MDS1 comprises determiningthat MDS2 matches MDS1 and said determining whether MDS3 matches Scomprises determining that MDS3 matches S.
 6. The method of claim 1,wherein said determining whether MDS2 matches S comprises determiningthat MDS2 does not match S and said determining whether MDS2 matchesMDS1 comprises determining that MDS2 matches MDS1 and said determiningwhether MDS3 matches S comprises determining that MDS3 does not match Sand said determining whether MDS3 matches MDS2 comprises determiningthat MDS3 matches MDS2.
 7. The method of claim 1, wherein saiddetermining whether MDS2 matches S comprises determining that MDS2 doesnot match S and said determining whether MDS2 matches MDS1 comprisesdetermining that MDS2 matches MDS1 and said determining whether MDS3matches S comprises determining that MDS3 does not match S and saiddetermining whether MDS3 matches MDS2 comprises determining that MDS3does not match MDS2.
 8. The method of claim 1, wherein said determiningwhether MDS2 matches S comprises determining that MDS2 does not match Sand said determining whether MDS2 matches MDS1 comprises determiningthat MDS2 does not match MDS1 and said determining whether MDS3 matchesS comprises determining that MDS3 matches S.
 9. The method of claim 1,wherein said determining whether MDS2 matches S comprises determiningthat MDS2 does not match S and said determining whether MDS2 matchesMDS1 comprises determining that MDS2 does not match MDS1 and saiddetermining whether MDS3 matches S comprises determining that MDS3 doesnot match S and said determining whether MDS3 matches MDS2 comprisesdetermining that MDS3 matches MDS2.
 10. The method of claim 1, whereinsaid determining whether MDS2 matches S comprises determining that MDS2does not match S and said determining whether MDS2 matches MDS1comprises determining that MDS2 does not match MDS1 and said determiningwhether MDS3 matches S comprises determining that MDS3 does not match Sand said determining whether MDS3 matches MDS2 comprises determiningthat MDS3 does not match MDS2.
 11. The method of claim 1, wherein saidtransforming the source data into the warehouse data comprisesperforming an irreversible transformation of the source data into thewarehouse data via the ETL transformation model.
 12. The method of claim1, wherein said transforming the warehouse data into the data cubeconsists of performing a reversible transformation of the warehouse intothe data cube via the OLAP transformation model.
 13. A data processingsystem comprising a processor and a computer readable memory unitcoupled to the processor, said memory unit containing program codeconfigured to be executed by the processor to implement a method forvalidating data, said method comprising: said processor generatingwarehouse data in a data warehouse by transforming source data in a datasource into the warehouse data via an Extract-Transform-Load (ETL)transformation model; said processor generating a data cube bytransforming the warehouse data in the data warehouse into the data cubevia an On-Line Analysis Processing (OLAP) transformation model; saidprocessor generating a report multi-dimensional data set (MDS1) from thedata cube via a data cube query of the data cube; said processorgenerating a reference multi-dimensional data set (S) from the sourcedata via a source data query of the source data, said source data querycorresponding to the data cube query; and said processor determiningwhether MDS1 matches S; wherein if said determining whether MDS1 matchesS comprises determining that MDS1 does not match S, then the methodfurther comprises said processor performing an OLAP inversetransformation on MDS1 to generate an OLAP multi-dimensional data set(MDS2) and said processor determining whether MDS2 matches S; wherein ifsaid determining whether MDS1 matches S comprises determining that MDS1does not match S and said determining whether MDS2 matches S comprisesdetermining that MDS2 does not match S, then said processor performingan ETF inverse transformation on MDS2 to generate an ETLmulti-dimensional data set (MDS3) and said processor determining whetherMDS2 matches MDS1 and said processor determining whether MDS3 matches S;wherein if said determining whether MDS1 matches S comprises determiningthat MDS1 does not match S and said determining whether MDS2 matches Scomprises determining that MDS2 does not match S and said determiningwhether MDS3 matches S comprises determining that MDS3 does not match S,then said processor determining whether MDS3 matches MDS2.
 14. The dataprocessing system of claim 13, wherein if said determining whether MDS1matches S comprises determining that MDS1 does not match S, then themethod further comprises ascertaining that a data error exists such thatsaid ascertaining ascertains that the data error is an OLAP model errorin the OLAP transformation model, an ETL model error in the ETLtransformation model, a dirty data error comprising an error in thesource data and/or erroneous data in the data warehouse, the ETL modelerror and/or the dirty data error, the OLAP model error and the ETLmodel error, or the OLAP model error and the ETL model error and thedirty data error; wherein if said determining whether MDS1 matches Scomprises determining that MDS1 matches S, then the method furthercomprises determining that a normal data condition exists such that theOLAP model error does not exist, the ETL model error does not exist, andthe dirty data error does not exist.
 15. The data processing system ofclaim 14, wherein said determining whether MDS1 matches S comprisesdetermining that MDS1 does not match S; wherein if said determiningwhether MDS2 matches S comprises determining that MDS2 matches S, thensaid ascertaining ascertains that the data error is the OLAP modelerror; wherein if said determining whether MDS2 matches S comprisesdetermining that MDS2 does not match S and said determining whether MDS2matches MDS1 comprises determining that MDS2 matches MDS1 and saiddetermining whether MDS3 matches S comprises determining that MDS3matches S, then said ascertaining ascertains that the data error is theETL model error; wherein if said determining whether MDS2 matches Scomprises determining that MDS2 does not match S and said determiningwhether MDS2 matches MDS1 comprises determining that MDS2 matches MDS1and said determining whether MDS3 matches S comprises determining thatMDS3 does not match S and said determining whether MDS3 matches MDS2comprises determining that MDS3 matches MDS2, then said ascertainingascertains that the data error is the dirty data error; wherein if saiddetermining whether MDS2 matches S comprises determining that MDS2 doesnot match S and said determining whether MDS2 matches MDS1 comprisesdetermining that MDS2 matches MDS1 and said determining whether MDS3matches S comprises determining that MDS3 does not match S and saiddetermining whether MDS3 matches MDS2 comprises determining that MDS3does not match MDS2, then said ascertaining ascertains that the dataerror is the ETL model error and/or the dirty data error; wherein ifsaid determining whether MDS2 matches S comprises determining that MDS2does not match S and said determining whether MDS2 matches MDS1comprises determining that MDS2 does not match MDS1 and said determiningwhether MDS3 matches S comprises determining that MDS3 matches S, thensaid ascertaining ascertains that the data error is the OLAP model errorand the ETL model error; wherein if said determining whether MDS2matches S comprises determining that MDS2 does not match S and saiddetermining whether MDS2 matches MDS1 comprises determining that MDS2does not match MDS1 and said determining whether MDS3 matches Scomprises determining that MDS3 does not match S and said determiningwhether MDS3 matches MDS2 comprises determining that MDS3 matches MDS2,then said ascertaining ascertains that the data error is the OLAP modelerror and the ETL model error; wherein if said determining whether MDS2matches S comprises determining that MDS2 does not match S and saiddetermining whether MDS2 matches MDS1 comprises determining that MDS2does not match MDS1 and said determining whether MDS3 matches Scomprises determining that MDS3 does not match S and said determiningwhether MDS3 matches MDS2 comprises determining that MDS3 does not matchMDS2, then said ascertaining ascertains that the data error is the OLAPmodel error and the ETL model error and the dirty data error.
 16. Acomputer program product, comprising a computer readable hardwarestorage medium having a computer readable program code stored therein,said computer readable program code configured to be executed by aprocessor of a data processing system to implement a method forvalidating data, said method comprising: said processor generatingwarehouse data in a data warehouse by transforming source data in a datasource into the warehouse data via an Extract-Transform-Load (ETL)transformation model; said processor generating a data cube bytransforming the warehouse data in the data warehouse into the data cubevia an On-Line Analysis Processing (OLAP) transformation model; saidprocessor generating a report multi-dimensional data set (MDS1) from thedata cube via a data cube query of the data cube; said processorgenerating a reference multi-dimensional data set (S) from the sourcedata via a source data query of the source data, said source data querycorresponding to the data cube query; and said processor determiningwhether MDS1 matches S; wherein if said determining whether MDS1 matchesS comprises determining that MDS1 does not match S, then the methodfurther comprises said processor performing an OLAP inversetransformation on MDS1 to generate an OLAP multi-dimensional data set(MDS2) and said processor determining whether MDS2 matches S; wherein ifsaid determining whether MDS1 matches S comprises determining that MDS1does not match S and said determining whether MDS2 matches S comprisesdetermining that MDS2 does not match S, then said processor performingan ETF inverse transformation on MDS2 to generate an ETLmulti-dimensional data set (MDS3) and said processor determining whetherMDS2 matches MDS1 and said processor determining whether MDS3 matches S;wherein if said determining whether MDS1 matches S comprises determiningthat MDS1 does not match S and said determining whether MDS2 matches Scomprises determining that MDS2 does not match S and said determiningwhether MDS3 matches S comprises determining that MDS3 does not match S,then said processor determining whether MDS3 matches MDS2.
 17. Thecomputer program product of claim 16, wherein if said determiningwhether MDS1 matches S comprises determining that MDS1 does not match S,then the method further comprises ascertaining that a data error existssuch that said ascertaining ascertains that the data error is an OLAPmodel error in the OLAP transformation model, an ETL model error in theETL transformation model, a dirty data error comprising an error in thesource data and/or erroneous data in the data warehouse, the ETL modelerror and/or the dirty data error, the OLAP model error and the ETLmodel error, or the OLAP model error and the ETL model error and thedirty data error; wherein if said determining whether MDS1 matches Scomprises determining that MDS1 matches S, then the method furthercomprises determining that a normal data condition exists such that theOLAP model error does not exist, the ETL model error does not exist, andthe dirty data error does not exist.
 18. The computer program product ofclaim 17, wherein said determining whether MDS1 matches S comprisesdetermining that MDS1 does not match S; wherein if said determiningwhether MDS2 matches S comprises determining that MDS2 matches S, thensaid ascertaining ascertains that the data error is the OLAP modelerror; wherein if said determining whether MDS2 matches S comprisesdetermining that MDS2 does not match S and said determining whether MDS2matches MDS1 comprises determining that MDS2 matches MDS1 and saiddetermining whether MDS3 matches S comprises determining that MDS3matches S, then said ascertaining ascertains that the data error is theETL model error; wherein if said determining whether MDS2 matches Scomprises determining that MDS2 does not match S and said determiningwhether MDS2 matches MDS1 comprises determining that MDS2 matches MDS1and said determining whether MDS3 matches S comprises determining thatMDS3 does not match S and said determining whether MDS3 matches MDS2comprises determining that MDS3 matches MDS2, then said ascertainingascertains that the data error is the dirty data error; wherein if saiddetermining whether MDS2 matches S comprises determining that MDS2 doesnot match S and said determining whether MDS2 matches MDS1 comprisesdetermining that MDS2 matches MDS1 and said determining whether MDS3matches S comprises determining that MDS3 does not match S and saiddetermining whether MDS3 matches MDS2 comprises determining that MDS3does not match MDS2, then said ascertaining ascertains that the dataerror is the ETL model error and/or the dirty data error; wherein ifsaid determining whether MDS2 matches S comprises determining that MDS2does not match S and said determining whether MDS2 matches MDS1comprises determining that MDS2 does not match MDS1 and said determiningwhether MDS3 matches S comprises determining that MDS3 matches S, thensaid ascertaining ascertains that the data error is the OLAP model errorand the ETL model error; wherein if said determining whether MDS2matches S comprises determining that MDS2 does not match S and saiddetermining whether MDS2 matches MDS1 comprises determining that MDS2does not match MDS1 and said determining whether MDS3 matches Scomprises determining that MDS3 does not match S and said determiningwhether MDS3 matches MDS2 comprises determining that MDS3 matches MDS2,then said ascertaining ascertains that the data error is the OLAP modelerror and the ETL model error; wherein if said determining whether MDS2matches S comprises determining that MDS2 does not match S and saiddetermining whether MDS2 matches MDS1 comprises determining that MDS2does not match MDS1 and said determining whether MDS3 matches Scomprises determining that MDS3 does not match S and said determiningwhether MDS3 matches MDS2 comprises determining that MDS3 does not matchMDS2, then said ascertaining ascertains that the data error is the OLAPmodel error and the ETL model error and the dirty data error.
 19. Amethod for validating data, said method comprising: a processor of adata processing system generating warehouse data in a data warehouse bytransforming source data in a data source into the warehouse data via anExtract-Transform-Load (ETL) transformation model; said processorgenerating a report multi-dimensional data set (MDS1) from the datawarehouse via a data warehouse query of the data warehouse; saidprocessor generating a reference multi-dimensional data set (S) from thesource data via a source data query of the source data, said source dataquery corresponding to the data cube query; and said processordetermining whether MDS1 matches S; wherein if said determining whetherMDS1 matches S comprises determining that MDS1 does not match S, thenthe method further comprises said processor performing an ETF inversetransformation on MDS1 to generate an ETL multi-dimensional data set(MDS3) and said processor determining whether MDS3 matches S; wherein ifsaid determining whether MDS1 matches S comprises determining that MDS1does not match S and said determining whether MDS3 matches S comprisesdetermining that MDS3 does not match S, then said processor determiningwhether MDS3 matches MDS1.
 20. The method of claim 19, wherein if saiddetermining whether MDS1 matches S comprises determining that MDS1 doesnot match S, then the method further comprises ascertaining that a dataerror exists such that said ascertaining ascertains that the data erroris an ETL model error in the ETL transformation model and/or a sourcedata error in the source data; wherein if said determining whether MDS1matches S comprises determining that MDS1 matches S, then the methodfurther comprises determining that a normal data condition exists suchthat the ETL transformation model and/or a source data error in thesource data does not exist.
 21. The method of claim 20, wherein saiddetermining whether MDS1 matches S comprises determining that MDS1 doesnot match S; wherein if said determining whether MDS3 matches Scomprises determining that MDS3 matches S, then said ascertainingascertains that the data error is the ETL model error; wherein if saiddetermining whether MDS3 matches S comprises determining that MDS3 doesnot match S and said determining whether MDS3 matches MDS1 comprisesdetermining that MDS3 matches MDS1, then said ascertaining ascertainsthat the data error is the source data error; wherein if saiddetermining whether MDS3 matches S comprises determining that MDS3 doesnot match S and said determining whether MDS3 matches MDS1 comprisesdetermining that MDS3 does not matches MDS1, then said ascertainingascertains that the data error is the ETL model error and/or source dataerror.
 22. The method of claim 19, wherein said determining whether MDS3matches S comprises determining that MDS3 matches S.
 23. The method ofclaim 19, wherein said determining whether MDS3 matches S comprisesdetermining that MDS3 does not match S and said determining whether MDS3matches MDS1 comprises determining that MDS3 matches MDS1.
 24. Themethod of claim 19, wherein said determining whether MDS3 matches Scomprises determining that MDS3 does not match S and said determiningwhether MDS3 matches MDS1 comprises determining that MDS3 does notmatches MDS1.
 25. The method of claim 19, wherein said transforming thesource data into the warehouse data comprises performing an irreversibletransformation of the source data into the warehouse data via the ETLtransformation model.